package com.yckj.day05;

/**
 * TODO 插入排序
 *
 * @author shengyuee
 * @version 1.0
 * 2025/7/22 11:31
 */
public class InsertSortDemo {
    public static void insertSort(int[] arr){
        // 从第二个数开始遍历,比较的轮数
        for (int i = 1; i < arr.length; i++) {
            // 待插入数的前一个坐标（将被向前遍历至0位）
            int j = i - 1;
            // 待插入数
            int temp = arr[i];
            // 如果temp小于被比较的数，该被比较的数应该通过后退一位（+1）；否则后一位应该就是temp，且应该退出循环
            for (; j >= 0 && temp < arr[j]; j--) {
                // 把有序列表中前一个往后移动，直到temp>=arr[j]
                arr[j+1] = arr[j];
            }
            // 找到插入的位置，将temp插入
            arr[j+1] = temp;
        }
    }
}
